[INFO] fetching crate oxidite-plugin 2.0.1...
[INFO] testing oxidite-plugin-2.0.1 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate oxidite-plugin 2.0.1 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate oxidite-plugin 2.0.1
[INFO] finished tweaking crates.io crate oxidite-plugin 2.0.1
[INFO] tweaked toml for crates.io crate oxidite-plugin 2.0.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate oxidite-plugin 2.0.1 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oxidite-plugin 2.0.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded notify v6.1.1
[INFO] [stderr]   Downloaded fastbloom v0.14.1
[INFO] [stderr]   Downloaded oxidite-config v2.0.1
[INFO] [stderr]   Downloaded h3-quinn v0.0.10
[INFO] [stderr]   Downloaded oxidite-core v2.0.1
[INFO] [stderr]   Downloaded h3 v0.0.8
[INFO] [stderr]   Downloaded aws-lc-rs v1.15.3
[INFO] [stderr]   Downloaded aws-lc-sys v0.36.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ec47776773c997e25799999e7464fb724a1c680b319fbab8b2f8d9f2578bc10d
[INFO] running `Command { std: "docker" "start" "-a" "ec47776773c997e25799999e7464fb724a1c680b319fbab8b2f8d9f2578bc10d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ec47776773c997e25799999e7464fb724a1c680b319fbab8b2f8d9f2578bc10d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec47776773c997e25799999e7464fb724a1c680b319fbab8b2f8d9f2578bc10d", kill_on_drop: false }`
[INFO] [stdout] ec47776773c997e25799999e7464fb724a1c680b319fbab8b2f8d9f2578bc10d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 52cfcc0ffb7d5d7a574d440f66e36af999cd65434dd623bcdec8c150aa616b05
[INFO] running `Command { std: "docker" "start" "-a" "52cfcc0ffb7d5d7a574d440f66e36af999cd65434dd623bcdec8c150aa616b05", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling aws-lc-rs v1.15.3
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling quinn-udp v0.5.14
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling quinn v0.11.9
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling time-core v0.1.7
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling lru-slab v0.1.2
[INFO] [stderr]    Compiling zmij v1.0.16
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling cc v1.2.53
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling time-macros v0.2.25
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling hdrhistogram v7.5.4
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling notify v6.1.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling aws-lc-sys v0.36.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling time v0.3.45
[INFO] [stderr]    Compiling toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling toml v0.9.11+spec-1.1.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling fastbloom v0.14.1
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling oxidite-config v2.0.1
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling h3 v0.0.8
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling quinn-proto v0.11.13
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling h3-quinn v0.0.10
[INFO] [stderr]    Compiling oxidite-core v2.0.1
[INFO] [stderr]    Compiling oxidite-plugin v2.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/lib.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Router`
[INFO] [stdout]   --> src/lib.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use oxidite_core::{Router, Result, Error};
[INFO] [stdout]    |                    ^^^^^^          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oxidite_config::Config`
[INFO] [stdout]   --> src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use oxidite_config::Config;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OxiditeResponse`
[INFO] [stdout]  --> src/plugin.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use oxidite_core::{OxiditeResponse, Error, Result};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/loader.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PluginInfo`
[INFO] [stdout]  --> src/loader.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{Plugin, PluginInfo, Result};
[INFO] [stdout]   |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/manager.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut plugins = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hook`
[INFO] [stdout]   --> src/plugin.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |     async fn hook(&self, hook: PluginHook) -> HookResult {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_hook`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/loader.rs:16:50
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn load_from_file<P: AsRef<Path>>(&self, path: P) -> Result<Arc<dyn Plugin>> {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut plugins = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/loader.rs:25:50
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn scan_directory<P: AsRef<Path>>(&self, path: P) -> Result<Vec<std::path::PathBuf>> {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader`
[INFO] [stdout]   --> src/manager.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let loader = PluginLoader::new();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `hooks` are never read
[INFO] [stdout]   --> src/manager.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PluginManager {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 11 |     plugins: HashMap<String, Arc<dyn Plugin>>,
[INFO] [stdout] 12 |     config: PluginConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 13 |     hooks: HashMap<String, Vec<Arc<dyn Plugin>>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "52cfcc0ffb7d5d7a574d440f66e36af999cd65434dd623bcdec8c150aa616b05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "52cfcc0ffb7d5d7a574d440f66e36af999cd65434dd623bcdec8c150aa616b05", kill_on_drop: false }`
[INFO] [stdout] 52cfcc0ffb7d5d7a574d440f66e36af999cd65434dd623bcdec8c150aa616b05
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 292fcf34e27fa5471e9b36b7d34bf9db61e1e550033d24ff6b6a65f909d0388f
[INFO] running `Command { std: "docker" "start" "-a" "292fcf34e27fa5471e9b36b7d34bf9db61e1e550033d24ff6b6a65f909d0388f", kill_on_drop: false }`
[INFO] [stderr]    Compiling oxidite-plugin v2.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/lib.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Router`
[INFO] [stdout]   --> src/lib.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use oxidite_core::{Router, Result, Error};
[INFO] [stdout]    |                    ^^^^^^          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oxidite_config::Config`
[INFO] [stdout]   --> src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use oxidite_config::Config;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OxiditeResponse`
[INFO] [stdout]  --> src/plugin.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use oxidite_core::{OxiditeResponse, Error, Result};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/loader.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PluginInfo`
[INFO] [stdout]  --> src/loader.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{Plugin, PluginInfo, Result};
[INFO] [stdout]   |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/manager.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut plugins = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hook`
[INFO] [stdout]   --> src/plugin.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |     async fn hook(&self, hook: PluginHook) -> HookResult {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_hook`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/loader.rs:16:50
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn load_from_file<P: AsRef<Path>>(&self, path: P) -> Result<Arc<dyn Plugin>> {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut plugins = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/loader.rs:25:50
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn scan_directory<P: AsRef<Path>>(&self, path: P) -> Result<Vec<std::path::PathBuf>> {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader`
[INFO] [stdout]   --> src/manager.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let loader = PluginLoader::new();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `hooks` are never read
[INFO] [stdout]   --> src/manager.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PluginManager {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 11 |     plugins: HashMap<String, Arc<dyn Plugin>>,
[INFO] [stdout] 12 |     config: PluginConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 13 |     hooks: HashMap<String, Vec<Arc<dyn Plugin>>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/lib.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Router`
[INFO] [stdout]   --> src/lib.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use oxidite_core::{Router, Result, Error};
[INFO] [stdout]    |                    ^^^^^^          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oxidite_config::Config`
[INFO] [stdout]   --> src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use oxidite_config::Config;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OxiditeResponse`
[INFO] [stdout]  --> src/plugin.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use oxidite_core::{OxiditeResponse, Error, Result};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/loader.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/manager.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut plugins = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hook`
[INFO] [stdout]   --> src/plugin.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |     async fn hook(&self, hook: PluginHook) -> HookResult {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_hook`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/loader.rs:16:50
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn load_from_file<P: AsRef<Path>>(&self, path: P) -> Result<Arc<dyn Plugin>> {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut plugins = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/loader.rs:25:50
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn scan_directory<P: AsRef<Path>>(&self, path: P) -> Result<Vec<std::path::PathBuf>> {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader`
[INFO] [stdout]   --> src/manager.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let loader = PluginLoader::new();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `hooks` are never read
[INFO] [stdout]   --> src/manager.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PluginManager {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 11 |     plugins: HashMap<String, Arc<dyn Plugin>>,
[INFO] [stdout] 12 |     config: PluginConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 13 |     hooks: HashMap<String, Vec<Arc<dyn Plugin>>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.39s
[INFO] running `Command { std: "docker" "inspect" "292fcf34e27fa5471e9b36b7d34bf9db61e1e550033d24ff6b6a65f909d0388f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "292fcf34e27fa5471e9b36b7d34bf9db61e1e550033d24ff6b6a65f909d0388f", kill_on_drop: false }`
[INFO] [stdout] 292fcf34e27fa5471e9b36b7d34bf9db61e1e550033d24ff6b6a65f909d0388f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 867a6498a7e55c58f08e21d6fb2485981e58bb27ff3ec8823b539406dd131d6c
[INFO] running `Command { std: "docker" "start" "-a" "867a6498a7e55c58f08e21d6fb2485981e58bb27ff3ec8823b539406dd131d6c", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/lib.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::Path`
[INFO] [stderr]  --> src/lib.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::path::Path;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]  --> src/lib.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::sync::Arc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `async_trait::async_trait`
[INFO] [stderr]  --> src/lib.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use async_trait::async_trait;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Error` and `Router`
[INFO] [stderr]   --> src/lib.rs:10:20
[INFO] [stderr]    |
[INFO] [stderr] 10 | use oxidite_core::{Router, Result, Error};
[INFO] [stderr]    |                    ^^^^^^          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `oxidite_config::Config`
[INFO] [stderr]   --> src/lib.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use oxidite_config::Config;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `OxiditeResponse`
[INFO] [stderr]  --> src/plugin.rs:3:20
[INFO] [stderr]   |
[INFO] [stderr] 3 | use oxidite_core::{OxiditeResponse, Error, Result};
[INFO] [stderr]   |                    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]  --> src/loader.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::fs;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PluginInfo`
[INFO] [stderr]  --> src/loader.rs:4:21
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::{Plugin, PluginInfo, Result};
[INFO] [stderr]   |                     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stderr]  --> src/manager.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/loader.rs:35:13
[INFO] [stderr]    |
[INFO] [stderr] 35 |         let mut plugins = Vec::new();
[INFO] [stderr]    |             ----^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hook`
[INFO] [stderr]   --> src/plugin.rs:45:26
[INFO] [stderr]    |
[INFO] [stderr] 45 |     async fn hook(&self, hook: PluginHook) -> HookResult {
[INFO] [stderr]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_hook`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `path`
[INFO] [stderr]   --> src/loader.rs:16:50
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub fn load_from_file<P: AsRef<Path>>(&self, path: P) -> Result<Arc<dyn Plugin>> {
[INFO] [stderr]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/loader.rs:26:13
[INFO] [stderr]    |
[INFO] [stderr] 26 |         let mut plugins = Vec::new();
[INFO] [stderr]    |             ----^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `path`
[INFO] [stderr]   --> src/loader.rs:25:50
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub fn scan_directory<P: AsRef<Path>>(&self, path: P) -> Result<Vec<std::path::PathBuf>> {
[INFO] [stderr]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `loader`
[INFO] [stderr]   --> src/manager.rs:27:13
[INFO] [stderr]    |
[INFO] [stderr] 27 |         let loader = PluginLoader::new();
[INFO] [stderr]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `config` and `hooks` are never read
[INFO] [stderr]   --> src/manager.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct PluginManager {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 11 |     plugins: HashMap<String, Arc<dyn Plugin>>,
[INFO] [stderr] 12 |     config: PluginConfig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 13 |     hooks: HashMap<String, Vec<Arc<dyn Plugin>>>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `oxidite-plugin` (lib) generated 17 warnings (run `cargo fix --lib -p oxidite-plugin` to apply 16 suggestions)
[INFO] [stderr] warning: `oxidite-plugin` (lib test) generated 16 warnings (16 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oxidite_plugin-1102112bf6018e18)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]    Doc-tests oxidite_plugin
[INFO] [stdout] test loader::tests::test_plugin_info ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "867a6498a7e55c58f08e21d6fb2485981e58bb27ff3ec8823b539406dd131d6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "867a6498a7e55c58f08e21d6fb2485981e58bb27ff3ec8823b539406dd131d6c", kill_on_drop: false }`
[INFO] [stdout] 867a6498a7e55c58f08e21d6fb2485981e58bb27ff3ec8823b539406dd131d6c
